home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Bavarian
/
Bavarian #162 (19xx)(APS Electronic).zip
/
Bavarian #162 (19xx)(APS Electronic).adf
/
AMOS_DEMO.ASC
< prev
next >
Wrap
Text File
|
1978-04-24
|
27KB
|
1,038 lines
Rem ---------------------------------------------------------------------
Rem AMOS DEMO V3!
Rem
Rem BY Peter Hickman
Rem
Rem Music composed and written by Allister Brimble
Rem
Rem You cannot change this demo, but you may view it (its a bit untidy-
Rem sorry) and you may use some of the commands from direct mode.
Rem For more information please examine the text file on this disk
Rem its called "IMPORTANT_TEXT_FILE.ASC".
Rem ---------------------------------------------------------------------
Close Workbench
Default
Screen Close 0
Led Off
DISK$="AMOS_DEMO:"
MEMORY=Chip Free
NO_FAST_MEM=0
PASS=0
CONTROL=0
If MEMORY<250000
NO_FAST_MEM=-1
Close Workbench
End If
Repeat
Load Iff DISK$+"TITLEPAGE.IFF",0
Screen Hide 0
Hide On
Screen Display 0,,-211,,200
Screen Show 0
PICCYON_DOWN[0]
BOUNCE[0]
Timer=0
If NO_FAST_MEM=-1
TUNE
WAITSET[11700]
Music Off
Erase 2
End If
If PASS=0 and NO_FAST_MEM=0 Then TUNE
If PASS=0 Then Get Disc Fonts
WAITSET[600-Timer]
Screen Open 2,320,200,2,Lowres
Screen Hide 2
Flash Off : Curs Off : Hide On : Cls 0
Colour 1,$FFF
Set Font 4
PAUSE[250]
CREDITS
TITLE_PAGE
HARDSPRITE
HOTDOG
GIPPER
STAR
HARDSCROLL
DUAL_PLAYFIELD
OVERLAY
CHANGE_FONTS
PRICE
PASS=1
Until False
End
Procedure TUNE
Shared DISK$
Reserve As Chip Work 2,77806
Bload DISK$+"AMOS_MUSIC",2
Music 2
End Proc
Procedure SET_UP_TEXT_SCREENS[SCR]
Screen Open SCR,320,200,2,Lowres
Colour 1,$FFF
Flash Off : Curs Off : Hide On : Cls 0
Screen 2
End Proc
Procedure CLOSE_SCREENS
Screen Close 0 : Hide On
End Proc
Procedure CREDITS
Shared CONTROL
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["THE AMOS DEMO",25,1,1]
MIDDLE["PROGRAMMING BY",60,1,0]
MIDDLE["Peter Hickman",75,1,0]
MIDDLE["MUSIC BY",105,1,0]
MIDDLE["Allister Brimble",120,1,0]
Set Font 0
MIDDLE["IF YOU WOULD LIKE SOME CONTROL",155,1,0]
MIDDLE["OVER THIS DEMO PRESS SPACE NOW",165,1,0]
MIDDLE["There is an IMPORTANT text file",185,1,0]
MIDDLE["on this disk, please read it.",195,1,0]
Set Font 4
APPEAR_5[2,0]
Clear Key
Timer=0
Repeat
TEMP=Asc(Inkey$)
Until TEMP<>0 or Mouse Key<>0 or Timer=>600
If TEMP=32
Cls 0
MIDDLE["On some of the",40,1,0]
MIDDLE["demonstrations you",65,1,0]
MIDDLE["will be able to move",90,1,0]
MIDDLE["some of the SPRITES or",115,1,0]
MIDDLE["BOBS with the mouse.",140,1,0]
APPEAR_3[2,0]
WAITSET[300]
CONTROL=-1
Else CONTROL=0
End If
End Proc
Procedure TITLE_PAGE
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["Let your imagination",40,1,0]
MIDDLE["take control and",65,1,0]
MIDDLE["design the game",90,1,%0]
MIDDLE["of your dreams.",115,1,%0]
APPEAR_1[2,0]
WAITSET[300]
Cls 0
MIDDLE["Over 400 commands",40,1,0]
MIDDLE["to unleash the raw power",65,1,0]
MIDDLE["hidden inside your Amiga.",90,1,0]
APPEAR_2[2,0]
WAITSET[300]
End Proc
Procedure HARDSPRITE
Shared DISK$
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["By pushing your Amiga to",40,1,0]
MIDDLE["its limit AMOS allows you",65,1,0]
MIDDLE["to exceed the maximum",90,1,0]
MIDDLE["amount of hardware",115,1,0]
MIDDLE["SPRITES normally",140,1,0]
MIDDLE["available to the user.",165,1,0]
APPEAR_4[2,0]
Timer=0
Load DISK$+"HARDSPRITE.ABK"
WAITSET[400-Timer]
CLOSE_SCREENS
Screen Open 3,320,200,16,Lowres
Screen Hide 3
Flash Off : Curs Off : Paper 0 : Hide On : Cls 0
Get Sprite Palette
Set Sprite Buffer 210
SKATE$="B:FR0=9T23(10,R0)NR0JB"
BIKE$="B:FR0=1T8(6,R0)NR0JB"
GLIDE$="B:FR0=24T29(10,R0)NR0JB"
PLANE$="B:FR0=30T33(2,R0)NR0JB"
Screen Show 3 : Hide On : View
Locate 0,13
Centre "SPRITE"
Cdown : Cdown
Centre "NUMBER"
Restore IMAGE_DATA
For LOP=0 To 15
Read X,Y,IMAGE
Sprite LOP+20,X Hard(X),Y Hard(3,Y),IMAGE : Wait Vbl
Channel LOP To Sprite 20+LOP
Print At(18,17);LOP+1
If IMAGE=1 Then Anim LOP,BIKE$
If IMAGE=9 Then Anim LOP,SKATE$
If IMAGE=24 Then Anim LOP,GLIDE$
If IMAGE=30 Then Anim LOP,PLANE$
PAUSE[80]
Next LOP
PAUSE[200]
Print At(17,15);Space$(6);
Print At(18,17);Space$(3);
Locate 0,13
Centre "ANIMATE!"
Anim On
PAUSE[600]
Locate 0,13
Centre "MOVE IT!"
For LOP=0 To 12 Step 4
Move LOP,"M-260,0,200"
Move LOP+1,"M260,0,200"
Move LOP+2,"M-220,0,140"
Move LOP+3,"M220,0,140"
Next LOP
Move On
X Mouse=450
PAUSE[250]
Anim Off
Move Off
Sprite Off
Set Sprite Buffer 16
Screen Close 3
IMAGE_DATA:
Data 230,-1,24,60,0,1,180,30,30,100,25,9
Data 230,49,24,60,50,1,180,80,30,100,75,9
Data 230,99,24,60,100,1,180,130,30,100,125,9
Data 230,150,24,60,149,1,180,180,30,100,175,9
End Proc
Procedure HOTDOG
Shared NO_FAST_MEM,DISK$,CONTROL
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["Software SPRITES (BOBS)",30,1,0]
MIDDLE["are also available. Their",55,1,0]
MIDDLE["size and range of colours",80,1,0]
MIDDLE["are limited only by the",105,1,0]
MIDDLE["amount of free memory!",130,1,0]
If CONTROL=-1
MIDDLE["Use the mouse to control",155,1,0]
MIDDLE["the giant hotdog.",180,1,0]
End If
APPEAR_3[2,0]
Timer=0
Load DISK$+"HOTDOGSPRITES.ABK"
WAITSET[400-Timer]
If NO_FAST_MEM=0
Load Iff DISK$+"BACKGR.IFF",7
Screen Hide 7
Else
Screen Open 7,320,200,16,Lowres
Flash Off : Curs Off : Cls 0 : Hide On
Get Sprite Palette
End If
CLOSE_SCREENS
Double Buffer
If CONTROL=-1
X Mouse=50 : Y Mouse=50
HOTDOG$="Begin: Let X=XS(7,XM) Let Y=YS(7,YM) Jump Begin"
Else
HOTDOG$="B: Let X=50 M -300,0,100 L: Let X=360 M -600,0,200 J L"
End If
FASTLEFT$=" Begin: Let X=360 Move -480,0,120 Jump Begin"
SLOWLEFT$=" Begin: Let X=360 Move -480,0,240 Jump Begin"
MINILEFT$=" Begin: Let X=360 Move -480,0,480 Jump Begin"
FASTRIGHT$=" Begin: Let X=-120 Move 440,0,110 Jump Begin"
SLOWRIGHT$=" Begin: Let X=-120 Move 440,0,220 Jump Begin"
MINI$=" Begin: Let X=-120 Move 440,0,440 Jump Begin"
BANNERLEFT$="Begin: Let X=360 Move -680,0,1360 Jump Begin"
BANNERIGHT$="Begin: Let X=-360 Move 680,0,1360 Jump Begin"
Restore HOTDOG_POSITIONS
For LOP=0 To 8
Read X,Y,IMAGE
Channel LOP To Bob LOP
If NO_FAST_MEM
Bob LOP,X,Y,IMAGE,0
Else
Bob LOP,X,Y,IMAGE
End If
Next LOP
Move 0,MINIRIGHT$
Move 1,FASTLEFT$
Move 2,SLOWLEFT$
Move 3,MINILEFT$
Move 4,FASTRIGHT$
Move 5,SLOWRIGHT$
Move 6,BANNERLEFT$
Move 7,BANNERIGHT$
Move 8,HOTDOG$
Move On
Screen Show 7
WAITSET[2000]
Bob Off
Move Off
Anim Off
Screen Close 7
HOTDOG_POSITIONS:
Data -120,60,3
Data 360,80,2,360,20,2
Data 360,100,5,-120,140,3
Data -120,0,4,320,0,6
Data -320,172,7,50,50,1
End Proc
Procedure OPEN_GIPPER
Screen Open 3,320,200,16,Lowres
Flash Off : Curs Off
Hide On : Cls 0
Get Sprite Palette
End Proc
Procedure GIPPER
Shared DISK$
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["Software SPRITES (BOBS)",40,1,0]
MIDDLE["can be used in many",65,1,0]
MIDDLE["different ways.",90,1,0]
APPEAR_1[2,0]
Timer=0
Load DISK$+"GIPPER.ABK"
WAITSET[200-Timer]
OPEN_GIPPER
CLOSE_SCREENS
Double Buffer
Bob Update Off
XSTART=-55
For LOP=1 To 4
For IMAGE=14 To 19
PUT_GIPPER[IMAGE,XSTART]
Add XSTART,6
PAUSE[10]
Next IMAGE
Next LOP
For LOP=1 To 8
Add XSTART,4
PUT_GIPPER[21,XSTART]
PAUSE[10]
Next LOP
For LOP=1 To 5
For IMAGE=24 To 31
PUT_GIPPER[IMAGE,XSTART]
PAUSE[10]
Next IMAGE
Next LOP
For LOP=1 To 7
For IMAGE=14 To 19
PUT_GIPPER[IMAGE,XSTART]
Add XSTART,6
PAUSE[10]
Next IMAGE
Next LOP
Screen Close 3
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["There is no limit to the",40,1,0]
MIDDLE["amount of images you can",65,1,0]
MIDDLE["generate. By using just",90,1,0]
MIDDLE["one BOB dozens can be",115,1,0]
MIDDLE["displayed with ease.",140,1,0]
APPEAR_3[2,0]
WAITSET[400]
OPEN_GIPPER
Screen To Front 3
Screen 3
CLOSE_SCREENS
Double Buffer
XSTART=-315
For LOP=1 To 8
For IMAGE=14 To 19
GIPPERS[IMAGE,XSTART]
Add XSTART,6
Next IMAGE
Next LOP
GIPPERS[20,XSTART]
For LOP=1 To 8
Add XSTART,4
GIPPERS[21,XSTART]
Next LOP
For LOP=1 To 5
For IMAGE=24 To 31
GIPPERS[IMAGE,XSTART]
Next IMAGE
Next LOP
For LOP=1 To 9
For IMAGE=14 To 19
GIPPERS[IMAGE,XSTART]
Add XSTART,6
Next IMAGE
Next LOP
Bob Off
Bob Update On
Screen Close 3
End Proc
Procedure PUT_GIPPER[IMAGE,XSTART]
Bob 1,XSTART,75,IMAGE,0
Bob Draw
Screen Swap : Wait Vbl
Cls 0
End Proc
Procedure GIPPERS[IMAGE,XSTART]
For Y=1 To 200 Step 50
For X=0 To 11 Step 2
Bob 1,XSTART+(X*25),Y,IMAGE,0
Bob Draw
Next X
Next Y
Screen Swap : Wait Vbl
Cls 0
End Proc
Procedure STAR
Shared NO_FAST_MEM,DISK$,CONTROL
Dim PREV_ANI(15),PATH$(15)
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["Collision detection in AMOS",30,1,0]
MIDDLE["uses special masks.",55,1,0]
MIDDLE["This method is very",80,1,0]
MIDDLE["fast and gives 100%",105,1,0]
MIDDLE["accuracy.",130,1,0]
APPEAR_2[2,0]
WAITSET[300]
Cls 0
MIDDLE["Watch the balls in this",30,1,0]
MIDDLE["next demo. They only",55,1,0]
MIDDLE["change colour when in",80,1,0]
MIDDLE["contact with a solid",105,1,0]
MIDDLE["part of the large star.",130,1,0]
If CONTROL=-1
MIDDLE["Use the mouse to",155,1,0]
MIDDLE["control this star.",180,1,0]
End If
APPEAR_4[2,0]
If NO_FAST_MEM=True Then Erase 1
Timer=0
Load Iff DISK$+"STAR.IFF",7
Screen Hide 7
WAITSET[400-Timer]
CLOSE_SCREENS
Get Bob 1,66,0 To 319,179
NUM=2
For LOP1=0 To 9
For LOP2=0 To 2
Get Bob NUM,LOP2*15,LOP1*15 To(LOP2*15)+15,(LOP1*15)+15
Inc NUM
Next LOP2
Next LOP1
Get Bob 1,69,0 To 319,179
Curs Off
Hide On
Make Mask
Cls 0
Double Buffer
Bob 1,0,12,1,0
If CONTROL=-1
X Mouse=0 : Y Mouse=0
STAR$="Begin: Let X=XS(7,XM) Let Y=YS(7,YM) Jump Begin"
Else
STAR$="B: L X=0 L Y=0 M 50,10,50 "
STAR$=STAR$+"M -50,0,25 L: M25,-10,25 M 25,10,25 "
STAR$=STAR$+"M-25,10,25 M-25,-10,25 J L"
End If
BLUE$="Loop: (0,2)(0,3)(0,4)(0,5)(0,6)(0,7)(0,8)(0,9)"
BLUE$=BLUE$+"(0,10)(0,11)(0,12)(0,13)(0,14)(0,15) Jump Loop"
RED$="Loop: (0,16)(0,17)(0,18)(0,19),(0,20)(0,21)(0,22)(0,23)"
RED$=RED$+"(0,24)(0,25)(0,26)(0,27)(0,28)(0,29) Jump Loop"
PATH$(0)="Begin: Let X=-10 Let Y=102 M 340,0,170"
PATH$(0)=PATH$(0)+" Let X=330 Let Y=20 M -360,100,140 Jump Begin"
PATH$(1)="Begin: Let X=330 Let Y=88 M -360,0,120"
PATH$(1)=PATH$(1)+" Let X=-20 Let Y=220 M 360,-240,180 Jump Begin"
PATH$(2)="Begin: Let X=330 Let Y=-20 M -360,240,100"
PATH$(2)=PATH$(2)+" Let X=-10 Let Y=-20 M 340,240,170 Jump Begin"
PATH$(3)="Begin: Let X=-20 Let Y=20 M 340,240,120"
PATH$(3)=PATH$(3)+" Let X=330 Let Y=90 M -360,0,180 Jump Begin"
PATH$(4)="Begin: Let X=280 Let Y=-20 M -200,240,120"
PATH$(4)=PATH$(4)+" Let X=-20 Let Y=180 M 340,-80,340 Jump Begin"
OBJECTS=5
For LOP=0 To OBJECTS-1
Bob LOP+2,INITX,INITY,2,0
Channel LOP To Bob LOP+2
Next LOP
Screen Show 7
Channel 15 To Bob 1
Move 15,STAR$
Bob 1,0,0,1
For LOP=0 To OBJECTS-1
Move LOP,PATH$(LOP)
Anim LOP,BLUE$
Next LOP
Move On
Anim On
For LOP=2 To OBJECTS+2
PREV_ANI(LOP)=True
Next LOP
Clear Key
Timer=0
Repeat
For LOP=2 To OBJECTS+2
HIT=Bob Col(LOP)
HIT=Col(1)
If HIT and PREV_ANI(LOP)
Anim Off LOP-2
Anim LOP-2,RED$
Anim On LOP-2
PREV_ANI(LOP)=False
Else If HIT=0 and PREV_ANI(LOP)=0
Anim Off LOP-2
Anim LOP-2,BLUE$
Anim On LOP-2
PREV_ANI(LOP)=True
End If
End If
Next LOP
TEMP=Asc(Inkey$)
Until Timer=>2000 or Mouse Key<>0 or TEMP<>0
Bob Off
Move Off
Anim Off
Screen Close 7
Rem Screen Open 2,320,200,2,Lowres
Rem Flash Off : Curs Off : Hide On
End Proc
Procedure HARDSCROLL
Shared NO_FAST_MEM,DISK$
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["Software and hardware",40,1,0]
MIDDLE["scrolling are present in",65,1,0]
MIDDLE["AMOS. Each type can be",90,1,0]
MIDDLE["activated with a single",115,1,0]
MIDDLE["command.",140,1,0]
APPEAR_5[2,0]
WAITSET[400]
Cls 0
MIDDLE["It is possible to use",40,1,0]
MIDDLE["both SPRITES and BOBS",65,1,0]
MIDDLE["on any type of",90,1,0]
MIDDLE["scrolling screen.",115,1,0]
APPEAR_3[2,0]
Timer=0
If NO_FAST_MEM=-1 Then Erase 1
LANDSCAPE$="B: L X=0 L R0=RA I R0=0 J B "
LANDSCAPE$=LANDSCAPE$+"L: L X=X+R0 P If X=320 J B"
LANDSCAPE$=LANDSCAPE$+"J L"
SHIP$="B: L RB=0 P P P M 100,0,25 L RB=1 P P P M 80,-80,20 L RB=2 "
SHIP$=SHIP$+" P P P M 0,160,40 L RB=1 P P P M -80,-80,20 L RA=10 L RB=0 P P P "
SHIP$=SHIP$+" M 100,0,25 M -140,0,140 L RB=0"
SANI$="B: I RB=0 J S I RB=1 J U I RB=2 J D J B"
SANI$=SANI$+"S: (10,1)(10,2) J B"
SANI$=SANI$+"U: (10,3)(10,4) J B"
SANI$=SANI$+"D: (10,5)(10,6) J B"
ALIENANI$="B: (5,22)(5,23)(5,26)(5,27)(5,28)(5,29)(5,30) "
ALIENANI$=ALIENANI$+" (5,31)(5,32) J B"
ALIENANI2$="B: (10,32)(10,31)(10,30)(10,29)(10,28)(10,27)"
ALIENANI2$=ALIENANI2$+"(10,26)(10,23)(10,22) J B"
ALIENMOVE$="F R0=1 T 2 L X=440 M -400,0,50 N R0"
ALIENMOVE2$="F R0=1 T 2 L X=440 M -400,0,100 N R0"
EXPLODE$="FR0=13T21(7,R0)NR0(7,33)"
If NO_FAST_MEM Then Erase 1
Screen Open 6,640,200,16,Lowres
Screen Hide 6
Flash Off : Curs Off : Hide On
Cls 0
Screen Display 6,,50,,199
Channel 0 To Screen Offset 6
Channel 8 To Sprite 30
Load DISK$+"SCROLLSPRITES.ABK"
Load Iff DISK$+"LANDSCAPE.IFF"
Cls 0,0,0 To 319,137
Screen Copy 6,0,0,319,200 To 6,320,0
WAITSET[300-Timer]
CLOSE_SCREENS
Get Sprite Palette
Screen Show 6
Set Sprite Buffer 128
Hide On
Amreg(0)=0
Move 0,LANDSCAPE$
For LOP=1 To 6
Channel LOP To Sprite LOP+19
Next LOP
Sprite 20,90,120,1
Move 1,SHIP$
Anim 1,SANI$
Restore SLOW_SHIPS
For LOP=5 To 6
Read Y
Sprite 19+LOP,440,Y,22
Anim LOP,ALIENANI2$
Move LOP,ALIENMOVE2$
Anim On LOP
Move On LOP
PAUSE[20]
Next LOP
Restore FAST_SHIPS
For LOP=2 To 4
Read Y
Sprite 19+LOP,440,Y,22
Anim LOP,ALIENANI$
Move LOP,ALIENMOVE$
Anim On LOP
Move On LOP
PAUSE[30]
Next LOP
Anim On 1
Move On 1
PAUSE[600]
Move On 0
PAUSE[600]
Amreg(0)=20
PAUSE[600]
Amreg(0)=10
PAUSE[400]
Amreg(0)=5
PAUSE[300]
Amreg(0)=0
PAUSE[230]
Move On 0
PAUSE[40]
Move 1,"M 120,0,20"
Sprite 23,440,120,22
Move 4,"M -160,0,20"
Move On 1
Move On 4
PAUSE[70]
Sprite Off 23
Anim Off 23
Sprite 23,260,120,13
Anim 1,EXPLODE$
Anim On 1
WAITSET[10]
Anim 4,EXPLODE$
Anim On 4
PAUSE[400]
Sprite Off
Screen Close 6
X Mouse=450
Set Sprite Buffer 16
SLOW_SHIPS:
Data 50,135
FAST_SHIPS:
Data 200,170,90
End Proc
Procedure OVERLAY
Shared DISK$,NO_FAST_MEM
SET_UP_TEXT_SCREENS[0]
Cls
MIDDLE["AMOS allows up to",40,1,0]
MIDDLE["eight screens to be",65,1,0]
MIDDLE["displayed at any",90,1,0]
MIDDLE["one time.",115,1,0]
APPEAR_1[2,0]
WAITSET[300]
Cls 0
MIDDLE["Each screen can",40,1,0]
MIDDLE["be manipulated in a",65,1,0]
MIDDLE["variety of unusual ways.",90,1,0]
APPEAR_4[2,0]
Timer=0
Screen Close 2
If NO_FAST_MEM=-1 Then Erase 1
HAMWINDOW$="Begin: Let Y=-300 M 0,650,65 Jump Begin"
BACKWINDOW$="Begin: M 320,0,80 M -320,0,80 Jump Begin"
Load Iff DISK$+"AMOSPIC1.d3",5
Screen Hide 5
Load Iff DISK$+"KEYKEEPER",6
Screen Hide 6
WAITSET[300-Timer]
CLOSE_SCREENS
Screen Show 5
Screen Show 6
Screen Open 7,640,8,2,Hires
Screen Display 5,,45,,255
Flash Off : Curs Off : Hide On
Paper 0 : Colour 1,$FFF
Cls 0
Centre "OVERLAPPING SCREENS WITH DIFFERENT SIZES, RESOLUTIONS AND COLOURS IS EASY"
Channel 0 To Screen Display 7
Channel 1 To Screen Display 6
Channel 2 To Screen Offset 5
Move 1,HAMWINDOW$
Move 2,BACKWINDOW$
Move On
Timer=0
Clear Key
Repeat
Screen To Front 7
For LOP=45 To 293
Screen Display 7,,LOP,,8
Wait Vbl
Next LOP
Screen To Front 6
For LOP=293 To 45 Step -1
Screen Display 7,,LOP,,8
Wait Vbl
Next LOP
TEMP=Asc(Inkey$)
Until(Timer=>2000) or(Mouse Key<>0) or(TEMP<>0)
Screen Close 7
Screen Close 6
Screen Close 5
Move Off
SET_UP_TEXT_SCREENS[2]
End Proc
Procedure CHANGE_FONTS
SET_UP_TEXT_SCREENS[0]
Cls 0
Set Font 4
MIDDLE["AMOS is much more flexible",40,1,0]
MIDDLE["then any other Amiga",65,1,0]
MIDDLE["programming language.",90,1,0]
APPEAR_4[2,0]
WAITSET[200]
Cls 0
MIDDLE["You can even use",40,1,0]
MIDDLE["standard Duluxe Paint",65,1,0]
MIDDLE["compatible fonts.",90,1,0]
APPEAR_5[2,0]
WAITSET[200]
For LOP=1 To 9
Cls 0
Timer=0
Set Font LOP
If LOP<>7
For LOP2=Text Base To 200-Text Base Step Text Base+4
MIDDLE["AMOS FONTS",LOP2,1,0]
Next LOP2
Screen Copy 2 To 0
WAITSET[130-Timer]
End If
Next LOP
WAITSET[150]
Set Font 4
End Proc
Procedure DUAL_PLAYFIELD
Shared DISK$,NO_FAST_MEM
SET_UP_TEXT_SCREENS[0]
Cls 0
MIDDLE["With AMOS you can easily",30,1,0]
MIDDLE["utilise the unique Amiga",55,1,0]
MIDDLE["Dual Playfield mode, Which",80,1,0]
MIDDLE["allows two screens to be",105,1,0]
MIDDLE["overlayed on top of each",130,1,0]
MIDDLE["each other.",155,1,0]
APPEAR_3[2,0]
WAITSET[300]
Cls 0
MIDDLE["This allows you to create",30,1,0]
MIDDLE["stunning parallax scrolling",55,1,0]
MIDDLE["games like XENON II and",80,1,0]
MIDDLE["SILKWORM.",105,1,0]
APPEAR_2[2,0]
WAITSET[300]
If NO_FAST_MEM=-1 Then Erase 1
Auto View Off
FRONT$="B:LX=1L:LX=X+4PIX>320JBJL"
BACK$=" B:LX=1L:LX=X+2PIX>320JBJL"
OPEN_LONG[6]
Load Iff DISK$+"DPLAY1.IFF"
Screen Copy 6,0,0,320,200 To 6,320,0
OPEN_LONG[7]
Load Iff DISK$+"DPLAY2.IFF"
Screen Copy 7,0,0,320,200 To 7,320,0
Auto View On
Wait Vbl
Dual Playfield 6,7
Restore DUAL_DATA
Screen 6
For LOP=8 To 15
Read REG
Colour LOP,REG
Next LOP
Channel 6 To Screen Offset 6
Channel 7 To Screen Offset 7
Move 6,BACK$
Move 7,FRONT$
Move On
WAITSET[2000]
Move Off
Screen 0 : Cls 0
Screen Close 6
Screen Close 7
DUAL_DATA:
Data $0,$333,$666,$AAA,$EEE,$233,$964,$B86
End Proc
Procedure OPEN_LONG[SCR]
Screen Open SCR,640,200,8,Lowres
Flash Off : Curs Off : Hide On : Cls 0
End Proc
Procedure PRICE
Shared DISK$
Load DISK$+"LOGO.ABK"
Screen Open 0,320,200,16,Lowres
Flash Off : Curs Off : Hide On
Cls 0
Screen 2
Cls 0
Set Font 4
MIDDLE["AMOS will be available in",25,1,0]
MIDDLE["March for "+Chr$(163)+"49.95 from ",38,1,0]
Set Font 0
MIDDLE["FOR DETAILED SPECIFICATIONS",85,1,0]
MIDDLE["WRITE TO:",95,1,0]
MIDDLE["AMOS INFORMATION",105,1,0]
MIDDLE["MANDARIN SOFTWARE",115,1,0]
MIDDLE["EUROPA HOUSE, ADLINGTON PARK",125,1,0]
MIDDLE["ADLINGTON, MACCLESFIELD",135,1,0]
MIDDLE["SK10 4NP",145,1,0]
MIDDLE["PHONE: (0625) 859333",160,1,0]
MIDDLE["Press space for more information",175,1,0]
MIDDLE["Any other key",185,1,1]
MIDDLE["restarts this demo.",195,1,1]
APPEAR_1[2,0]
Screen 0
Get Sprite Palette
Colour 1,$FFF
Patch Bob 114,39,1
Screen 2
Timer=0
Repeat
TEMP=Asc(Inkey$)
Until Mouse Key<>0 or Timer=>1500 or TEMP<>0
Bob Off
If TEMP=32
ABOUT_EDITOR
ABOUT_MUSIC
ABOUT_SCREENS
ABOUT_SPRITES
ABOUT_AMAL
ABOUT_ADVANCED
ABOUT_MORE
ABOUT_USES
End If
End Proc
Procedure ABOUT_EDITOR
INFO_SET["ABOUT AMOS"]
Text 0,45,"-Edit programs in an advanced"
Text 0,55," user friendly environment."
Text 0,75,"-Have up to four programs and"
Text 0,85," twelve accessories in memory."
Text 0,105,"-Use the configurable function"
Text 0,115," key menu to access dozens of"
Text 0,125," often used commands."
Text 0,145,"-Port STOS programs from an ST"
Text 0,155," with relative ease."
Screen 0
Cls 0
Screen 2
APPEAR_1[2,0]
WAITSET[650]
End Proc
Procedure ABOUT_MUSIC
INFO_SET["SOUND"]
Text 0,45,"-Play up to four samples at once"
Text 0,55," while your program is running!!"
Text 0,75,"-Play interrupt driven music"
Text 0,85," created with SoundTracker, GMC"
Text 0,95," or use the advanced music"
Text 0,105," editor that comes with AMOS."
Text 0,125,"-Access the sound chip directly"
Text 0,135," with powerful commands."
APPEAR_3[2,0]
WAITSET[600]
End Proc
Procedure ABOUT_SCREENS
INFO_SET["SCREENS"]
Text 0,45,"-Load any type of IFF picture,"
Text 0,55," ie HAM, EHB and Dual Playfield."
Text 0,75,"-Have up to eight screens"
Text 0,85," displayed at any one time."
Text 0,105,"-Clone any screen to produce"
Text 0,115," spectacular multi-player games."
Text 0,135,"-Scroll a screen with a single"
Text 0,145," command."
APPEAR_4[2,0]
WAITSET[600]
End Proc
Procedure ABOUT_SPRITES
INFO_SET["SPRITES"]
Text 0,45,"-Professional sprite editor"
Text 0,55," allows the creation of gigantic"
Text 0,65," images."
Text 0,85,"-Display up to 400 hardware"
Text 0,95," sprites on one screen."
Text 0,115,"-Exceed the 4 colour hardware"
Text 0,125," sprite limitation."
Text 0,145,"-Grab and examine sprites from"
Text 0,155," your favourite games using the"
Text 0,165," special sprite grabber program."
APPEAR_2[2,0]
WAITSET[650]
End Proc
Procedure ABOUT_AMAL
INFO_SET["AMAL"]
Text 0,45,"-Animate and move sprites,"
Text 0,55," Bobs and even whole screens"
Text 0,65," with the interrupt driven"
Text 0,75," AMos Animation Language (AMAL)."
Text 0,95,"-Display up to 64 animation"
Text 0,105," sequences."
Text 0,125,"-An easy-to-use AMAL editor"
Text 0,135," gives AMOS features absent"
Text 0,145," from many dedicated animation"
Text 0,155," packages."
APPEAR_5[2,0]
WAITSET[700]
End Proc
Procedure ABOUT_ADVANCED
INFO_SET["ADVANCED FEATURES"]
Text 0,45,"-Directly modify the copper list,"
Text 0,55," giving complete control over"
Text 0,65," the building blocks which make"
Text 0,75," up all Amiga screens."
Text 0,95,"-Access all the Standard disk"
Text 0,105," functions without having to"
Text 0,115," open external libraries, AMOS"
Text 0,125," has them built in!"
Text 0,145,"-Use any standard Amiga font to"
Text 0,155," produce high quality displays."
Text 0,175,"-Add your own commands to AMOS"
Text 0,185," with a unique extension system."
APPEAR_1[2,0]
WAITSET[700]
End Proc
Procedure ABOUT_MORE
INFO_SET["MORE ADVANCED FEATURES"]
Text 0,45,"-Use procedures with parameter"
Text 0,55," passing and error detection."
Text 0,75,"-Create highly structured"
Text 0,85," programs with the IF-ENDIF"
Text 0,95," constructs."
Text 0,115,"-Commands unique to AMOS give"
Text 0,125," the system unparalled speed"
Text 0,135," in numerical processing."
APPEAR_3[2,0]
WAITSET[600]
End Proc
Procedure ABOUT_USES
INFO_SET["USES FOR AMOS"]
Text 0,45,"-As an advanced development tool"
Text 0,55," for games."
Text 0,75,"-As a tool to develop"
Text 0,85," educational or utility"
Text 0,95," software."
Text 0,115,"-As a system to produce"
Text 0,125," animation within an academic"
Text 0,135," or commercial environment."
Text 0,155,"-As part of a video titling"
Text 0,165," system."
Text 0,185,"-As a teaching aid for advanced"
Text 0,195," level students."
APPEAR_5[2,0]
WAITSET[700]
End Proc
Procedure INFO_SET[T$]
Cls 0
Set Font 4
MIDDLE[T$,20,1,1]
Set Font 0
End Proc
Procedure PAUSE[T]
For LOP=1 To T*100
Next LOP
End Proc
Procedure WAITSET[T]
Timer=0
Clear Key
Repeat
TEMP1=Asc(Inkey$)
Until Mouse Key<>0 or TEMP1<>0 or Timer=>T
End Proc
Procedure MIDDLE[T$,Y,C,FLAG]
Screen 2
Gr Writing 0
Ink C
Set Text FLAG
TEMP=Text Length(T$)
MIDDLE=(320-TEMP)/2
Text MIDDLE,Y,T$
End Proc
Procedure APPEAR_1[SOURCE,DEST]
Screen To Front DEST
Screen DEST
Get Palette SOURCE
For LOP=0 To 99 Step 2
Y=LOP*2
Y2=197-(Y-1)
Screen Copy SOURCE,0,Y,320,Y+2 To DEST,0,Y
Screen Copy SOURCE,0,Y2,320,Y2+2 To DEST,0,Y2
PAUSE[10]
Next LOP
Screen SOURCE
End Proc
Procedure APPEAR_2[SOURCE,DEST]
Screen To Front DEST
Screen DEST
Get Palette SOURCE
For LOP=0 To 159 Step 2
X=LOP*2
X2=317-(X-1)
Screen Copy SOURCE,X,0,X+2,200 To DEST,X,0
Screen Copy SOURCE,X2,0,X2+2,200 To DEST,X2,0
PAUSE[5]
Next LOP
Screen SOURCE
End Proc
Procedure APPEAR_3[SOURCE,DEST]
Screen To Front DEST
Screen DEST
Get Palette SOURCE
For LOP=0 To 319 Step 2
X=LOP
X2=318-(X-1)
Screen Copy SOURCE,X,0,X+1,200 To DEST,X,0
Screen Copy SOURCE,X2,0,X2+1,200 To DEST,X2,0
Next LOP
Screen SOURCE
End Proc
Procedure APPEAR_4[SOURCE,DEST]
Screen To Front DEST
Screen DEST
Get Palette SOURCE
For X=0 To 39
For Y=0 To X
Screen Copy SOURCE,(X-Y)*16,Y*10,(X-Y+1)*16,(Y+1)*10 To DEST,(X-Y)*16,Y*10
Next Y
Next X
Screen SOURCE
End Proc
Procedure APPEAR_5[SOURCE,DEST]
Screen To Front DEST
Screen DEST
Get Palette SOURCE
XAXIS=20
YAXIS=20
XMID=10
YMID=10
For Y=0 To YAXIS
C=Y
For X=XMID To 0 Step -1
If C>0
Screen Copy SOURCE,X*16,(YMID-C)*10,(XAXIS-X)*16,(YMID+C)*10 To DEST,X*16,(YMID-C)*10
End If
Dec C
Next X
Next Y
Screen SOURCE
End Proc
Procedure PICCYON_DOWN[SCR]
For Y=-211 To 50 Step 15
Screen Display SCR,,Y,,200
Wait Vbl
Next
End Proc
Procedure BOUNCE[SCR]
For LOP=30 To 0 Step -10
For LOP1=1 To LOP Step 5
Screen Display SCR,,50-LOP1,,200
View
Wait Vbl
Next LOP1
For LOP2=LOP To 1 Step -5
Screen Display SCR,,50-LOP2,,200
View
Wait Vbl
Next LOP2
Next LOP
Screen Display 0,,50,,200
View
End Proc